草庐IT

sql - Sum on a left join SQL

全部标签

Hadoop grep转储sql

我想使用ApacheHadoop解析大文件(每个~~20MB)。这些文件是postegresql转储(即主要是CREATETABLE和INSERT)。我只需要首先过滤掉不是CREATETABLE或INSERTINTO的任何内容。所以我决定使用带有^(CREATETABLE|INSERT).*;$模式的grepmapreduce(以CREATETABLE或INSERT开头并以“;”结尾的行)。我的问题是其中一些创建和插入需要多行(因为我猜模式真的很大)所以模式根本无法匹配它们(比如CREATETABLEtest(\n“id”...\n...“名称”...\n);)我想我可以编写一个map

sql - 从查询中的数值表达式返回的数据类型

在cloudera的Impala指南中(https://www.cloudera.com/documentation/enterprise/5-8-x/topics/impala_conversion_functions.html)有一个示例演示了如何使用typeof()函数来检查数值表达式的返回数据类型:+--------------------------+|typeof(5.30001/2342.1)|+--------------------------+|DECIMAL(13,11)|+--------------------------+当我这样做时:selecttypeo

sql - 如何获得每天 2 列总计数的百分比?

我有以下查询:SELECTACCT_OT,COUNT(CASEWHENBR_CDlike'%0%'THEN1ELSENULLEND)ASnew,COUNT(CASEWHENBR_CDlike'%1%'THEN1ELSENULLEND)ASold,FROMMSTR_TBLwhereACCT_OTbetween'2017-10-23'and'2017-10-25'GROUPBYACCT_OT;我希望能够在同一个查询中添加另一列,以显示旧/新的百分比。比如10/23,new是10,old是1,那么第三列就是10%。希望大家帮帮忙。 最佳答案

sql - 正则表达式替换在 HIVE 中不起作用

我想将数据中的;替换为HIVE中的:尝试了以下但没有工作hive>selectREGEXP_REPLACE('Mozilla/5.0(Macintosh;Intel',';',':');如何在HIVE中实现这一点。我在转换它时遇到问题。 最佳答案 只需使用replace():selectreplace('Mozilla/5.0(Macintosh;Intel',';',':')replace()在文档中描述。 关于sql-正则表达式替换在HIVE中不起作用,我们在StackOverflo

hadoop - 在 Spark SQL 中使用正则表达式函数从字符串中提取特定数字

我在mysql中有一个表,它有POST_ID和相应的INTEREST:我使用以下正则表达式查询来选择包含1,2,3的兴趣。SELECT*FROMINTEREST_POSTwhereINTERESTREGEXP'(?=.*[[::]])(?=.*[[::]])(?=.*[[::]])';我在HDFS中导入了表。但是,当我在SparkSQL中使用相同的查询时,它显示空记录。如何在spark中使用这里的REGEXP函数来选择包含1,2,3的兴趣? 最佳答案 您正在使用的正则表达式需要稍微更改一下。您可以执行以下操作。scala>valmy

sql - 在 Hive 中查询

在SQL中我们有分区依据和分组依据selectdeptno,count(*)cfromempgroupbydeptno;DEPTNOC-------103205306selectdeptno,count(*)over(partitionbydeptno)cfromemp;DEPTNOC-------103103103205205205205205306306306306306306如果我们需要在HIVE中练习同样的事情,会有什么选择。我们在Hive中有同样的东西吗?请建议提前致谢。 最佳答案 Hive支持窗口函数,参见Windowi

sql - 如何创建内部漏斗分析?

我想创建内部漏斗分析基础架构。所有用户事件提要信息都将写入所选的数据库/DW,然后,当我动态定义漏斗时,我希望能够为漏斗中的每个阶段选择session数。我在任何地方都找不到创建这种东西的例子。有人说我应该为此使用Hadoop和MapReduce,但我在网上找不到任何示例。 最佳答案 您的MapReduce非常简单:Mapper读取日志文件中的session行,其输出为(stag-id,1)将Reducer的数量设置为等于阶段的数量。Reducer对每个阶段的值求和。就像wordcount示例(这是Hadoop的“HelloWorl

SQL获取时间戳差大于30时id的个数

我有以下表格数据结构。我需要找到SESSIONS的数量。SESSIONis:对于一个userid,如果有多行,则检查时间戳。如果时间戳差异小于30,则将其视为一个session。+---------+----------+|userid|timestamp|+---------+----------+|1|10||1|11||1|55||2|65|+---------+----------+在上面的示例中,对于userid1,时间戳10和11被视为单个session。但是(55-11=44)大于30。所以,这是另一个session。因此用户id1和有2个session用户ID2和有1个

sql - hadoop操作只写一行?

我正在尝试处理tweets-clean.txt。通过处理,我的意思是获取每个用户标识的较早日期、最新日期和记录数,以及每行中的用户标识本身。我只得到一行,该行中只有最小和最大日期。我做错了什么?CREATETABLEtemptweets16(datestring,useridstring);LOADDATALOCALINPATH'tweets-clean.txt'INTOTABLEtemptweets16;INSERTOVERWRITELOCALDIRECTORY'./hive-output'SELECTuseridasuserid,MIN(FROM_UNIXTIME(UNIX_TIM

hadoop - sqoop 导出到 sql server 失败

我正在尝试将250mb的数据(75个字符数组列)从hdfs导出到sqlserver。它因以下错误而失败,Causedby:java.io.IOException:com.microsoft.sqlserver.jdbc.SQLServerException:Theincomingtabulardatastream(TDS)remoteprocedurecall(RPC)protocolstreamisincorrect.ToomanyparameterswereprovidedinthisRPCrequest.Themaximumis2100.然后我通过"-Dsqoop.export.